async function run($input, $output, $modules = modules) {

    /**发送新客户欢迎语
       * 官方API：https://work.weixin.qq.com/api/doc/90000/90135/92137
       * 错误码查询工具：https://open.work.weixin.qq.com/devtool/query?e=
       * 
       * text、image、link和miniprogram四者不能同时为空；
       * text与另外三者可以同时发送，此时将会以两条消息的形式触达客户
       * image、link和miniprogram只能有一个，如果三者同时填，则按image、link、miniprogram的优先顺序取参，也就是说，如果image与link同时传值，则只有image生效。
       * media_id和pic_url只需填写一个，两者同时填写时使用media_id，二者不可同时为空。
       */

    const wxworkApi = $modules.wxworkApi;

    let data = {
        welcome_code: $input.welcomeCode,
        //文本
        text: {
            content: $input.content
        },
        //图片
        image: {
            media_id: $input.media_id,
            pic_url: $input.pic_url,
        },
        //图文
        link: {
            title: $input.link_title,
            picurl: $input.link_picurl,
            desc: $input.link_desc,
            url: $input.link_url
        },
        //小程序
        miniprogram: {
            title: $input.miniprogram_title,
            pic_media_id: $input.miniprogram_media_id,

            appid: $input.miniprogram_appid,
            page: $input.miniprogram_page
        }

    };

    //发送欢迎语,在下方调试中返回结果msg为空表示执行成功。
    wxworkApi.request(
        {
            method: 'post',
            url: 'externalcontact/send_welcome_msg',
            data: data
        }
    )
}
